#pragma once
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

inline void gravarInteiroArquivo(int dado, FILE *file){
  char buffer[5];
  sprintf(buffer,"%04d",dado);
  fwrite(buffer,4,1,file);
}

inline void gravarStringArquivo(const char* dado, FILE *file){
  int compString = strlen(dado);
  gravarInteiroArquivo(compString,file);
  fwrite(dado,compString,1,file);
}

inline void gravarCharArquivo(char dado, FILE *file){    
  fwrite(&dado,sizeof(dado),1,file);
}


inline char lerCharArquivo(FILE *file){
  char buffer;
  fread(&buffer,sizeof(char),1,file);  
  return buffer;
}

inline int lerInteiroArquivo(FILE *file){
  char buffer[5];
  fread(buffer,4,1,file);
  buffer[4] = '\0'; //certeza de que o buffer é uma string
  return atoi(buffer);
}

inline char *lerStringArquivo(FILE *file){
  int compString = lerInteiroArquivo(file);
  char *buffer = malloc(compString+1);
  fread(buffer,compString,1,file);
  buffer[compString] = '\0';
  return buffer;
}
